﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace V82.ОбщиеМодули
{
	public partial class НаборПерсоналаДополнительный
	{
		////////////////////////////////////////////////////////////////////////////////
		// Вспомогательные процедуры, функции

		public object ПолучитьСписокВстречПоЗаявке(/*ЗаявкаКандидата*/)
		{
			//Запрос = Новый Запрос;
			//Запрос.УстановитьПараметр("ЗаявкаКандидата",	ЗаявкаКандидата);
			//Запрос.УстановитьПараметр("ТекущаяДата",		ОбщегоНазначения.ПолучитьРабочуюДату());
			/*Запрос.Текст =
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	Встречи.Комментарий,
	|	Встречи.Ссылка,
	|	Встречи.ДатаНачала КАК ДатаНачала,
	|	Встречи.ДатаОкончания
	|ИЗ
	|	Документ.Встречи КАК Встречи
	|ГДЕ
	|	Встречи.ЗаявкаКандидата = &ЗаявкаКандидата
	|	И Встречи.Проведен
	|	И Встречи.ДатаОкончания >= &ТекущаяДата
	|
	|УПОРЯДОЧИТЬ ПО
	|	ДатаНачала";*/
			return null;
		}

		public void ИзменитьСостояниеЗаявкиКандидата(/*ЗаявкаКандидата, СостояниеЗаявки*/)
		{
			//НаборЗаписей = РегистрыСведений.ТекущаяРаботаПоЗаявкамКандидатов.СоздатьНаборЗаписей();
			//НаборЗаписей.Отбор.Период.Установить(ОбщегоНазначения.ПолучитьРабочуюДату());
			//НаборЗаписей.Отбор.ЗаявкаКандидата.Установить(ЗаявкаКандидата);
			//НаборЗаписей.Прочитать();
			if(true/*НаборЗаписей.Количество() = 0*/)
			{
				//Строка = НаборЗаписей.Добавить();
				//Строка.Период			= ОбщегоНазначения.ПолучитьРабочуюДату();
				//Строка.ЗаявкаКандидата	= ЗаявкаКандидата;
			}
			//Строка.Состояние			= СостояниеЗаявки;
			//НаборЗаписей.Записать(Истина);
		}

		public void НазначитьВстречу(/*ЭлементыФормы, ЭтаФорма, ЭтотОбъект*/)
		{
			//ДанныеСтроки = ЭлементыФормы.ТабличноеПолеЗаявкиКандидатов.ТекущиеДанные;
			if(true/*ДанныеСтроки = Неопределено ИЛИ ДанныеСтроки.Ссылка.Пустая()*/)
			{
			}
			//Запрос = Новый Запрос;
			/*Запрос.Текст =
	"ВЫБРАТЬ
	|	ЗаявкиКандидатов.ФизЛицо,
	|	ЗаявкиКандидатов.Ответственный.ФизЛицо
	|ИЗ
	|	Справочник.ЗаявкиКандидатов КАК ЗаявкиКандидатов
	|ГДЕ
	|	ЗаявкиКандидатов.Ссылка = &ЗаявкаКандидата";*/
			//Запрос.УстановитьПараметр("ЗаявкаКандидата",	ДанныеСтроки.Ссылка);
			//Выборка = Запрос.Выполнить().Выбрать();
			//Форма = Документы.Встречи.ПолучитьФормуНовогоДокумента(, ЭтаФорма, ЭтотОбъект);
			//Форма.ВстречаСКандидатом	= Истина;
			//Форма.ЗаявкаКандидата		= ДанныеСтроки.Ссылка;
			if(true/*Выборка.Следующий()*/)
			{
				if(true/*Не Выборка.Физлицо.Пустая()*/)
				{
					//Форма.Участники.Добавить().Физлицо = Выборка.Физлицо;
				}
				if(true/*Выборка.ОтветственныйФизлицо <> NULL И Не Выборка.ОтветственныйФизлицо.Пустая()*/)
				{
					//Форма.Участники.Добавить().Физлицо = Выборка.ОтветственныйФизлицо;
				}
			}
			//Форма.Открыть();
		}
		////////////////////////////////////////////////////////////////////////////////
		// Процедуры, функции объекта
		////////////////////////////////////////////////////////////////////////////////
		// Процедуры, функции для работы формы

		public void РаботаПоЗаявкеЗавершена(/*Форма, ВыделенныеСтроки*/)
		{
			//ДанныеСтроки = Форма.ЭлементыФормы.ТабличноеПолеЗаявкиКандидатов.ТекущиеДанные;
			if(true/*ДанныеСтроки = Неопределено ИЛИ ДанныеСтроки.Ссылка.Пустая()*/)
			{
			}
			//ТекстВопроса = "Кандидаты, работа по которым завершена, не будут отображаться в списке активных кандидатов, но будут доступны в списке всех кандидатов.  Завершить работу по кандидату?";
			//Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет);
			if(true/*Ответ = КодВозвратаДиалога.Нет*/)
			{
			}
			//МассивЗаявок = Новый Массив;
		}

		public void СоздатьСотрудника(/*Форма*/)
		{
			//ДанныеСтроки = Форма.ЭлементыФормы.ТабличноеПолеЗаявкиКандидатов.ТекущиеДанные;
			if(true/*ДанныеСтроки = Неопределено ИЛИ ДанныеСтроки.Ссылка.Пустая()*/)
			{
			}
			//ЗаявкаДляСотрудника = ДанныеСтроки.Ссылка;
			//ФормаСотрудника = Справочники.СотрудникиОрганизаций.ПолучитьФормуНовогоЭлемента(, Форма, Форма);
			//Запрос = Новый Запрос;
			//Запрос.УстановитьПараметр("ЗаявкаКандидата",	ЗаявкаДляСотрудника);
			/*Запрос.Текст =
	"ВЫБРАТЬ
	|	ЗаявкиКандидатов.ФизЛицо
	|ИЗ
	|	Справочник.ЗаявкиКандидатов КАК ЗаявкиКандидатов
	|ГДЕ
	|	ЗаявкиКандидатов.Ссылка = &ЗаявкаКандидата";*/
			//Выборка = Запрос.Выполнить().Выбрать();
			if(true/*Выборка.Следующий()*/)
			{
				//ФормаСотрудника.Физлицо	= Выборка.Физлицо;
			}
			//ФормаСотрудника.Открыть();
			//Опрос = ПроцедурыУправленияПерсоналомПереопределяемый.НайтиРезюмеКандидата(ЗаявкаДляСотрудника);
			//ЗаполнитьРеквизитыФизическогоЛица(ФормаСотрудника, ФормаСотрудника.ФизлицоОбъект, ДанныеСтроки.Наименование, Опрос);
			//ФормаСотрудника.ФизлицоОбъект.Наименование = ФормаСотрудника.Наименование;
			//СотрудникиОрганизацийКлиент.УстановитьЗаголовокВидимостьПерейтиКВводуГруппыДоступа(ФормаСотрудника);
		}

		public void СоздатьФизлицоПоЗаявке(/*Форма*/)
		{
			//ДанныеСтроки = Форма.ЭлементыФормы.ТабличноеПолеЗаявкиКандидатов.ТекущиеДанные;
			if(true/*ДанныеСтроки = Неопределено ИЛИ ДанныеСтроки.Ссылка.Пустая()*/)
			{
			}
			//ЗаявкаДляСотрудника = ДанныеСтроки.Ссылка;
			//ФормаФизлица = Справочники.ФизическиеЛица.ПолучитьФормуНовогоЭлемента(, Форма, Форма);
			//Опрос = ПроцедурыУправленияПерсоналомПереопределяемый.НайтиРезюмеКандидата(ДанныеСтроки.Ссылка);
			//ЗаполнитьРеквизитыФизическогоЛица(ФормаФизлица, ФормаФизлица, ДанныеСтроки.Наименование, Опрос);
			//ФормаФизлица.Открыть();
		}

		public void ЗаполнитьРеквизитыФизическогоЛица(/*Форма, ФизическоеЛицо, Знач НаименованиеЗаявки, Опрос = Неопределено*/)
		{
			if(true/*Опрос = Неопределено*/)
			{
				//Форма.Наименование			= НаименованиеЗаявки;
				//ФизическоеЛицо.Наименование	= НаименованиеЗаявки;
				//МассивФИО = ОбщегоНазначения.ПолучитьМассивФИО(НаименованиеЗаявки);
				//Форма.Фамилия				= МассивФИО[0];
				//Форма.Имя					= МассивФИО[1];
				//Форма.Отчество				= МассивФИО[2];
				if(true/*ЗначениеЗаполнено(Форма.Отчество)*/)
				{
					//ФизическоеЛицо.Пол		= ПроцедурыУправленияПерсоналом.ПолучитьПол(Форма.Отчество);
				}
			}
		}
		////////////////////////////////////////////////////////////////////////////////
		// Процедуры, функции для работы формы

		public void ДополнитьКонтекстныеМеню(/*ЭлементыФормы, ДополнительныеДействия*/)
		{
			//Кнопки = ЭлементыФормы.КоманднаяПанельЗаявкиКандидатов.Кнопки.ПодменюЗаявки.Кнопки;
			//МестоВставки = Кнопки.Индекс(Кнопки.Найти("ДобавитьФайлы")) + 1;
			//Кнопки.Вставить(МестоВставки, "РазделительРаботаПоЗаявкеЗавершена", ТипКнопкиКоманднойПанели.Разделитель);
			//РаботаПоЗаявкеЗавершена = Кнопки.Вставить(МестоВставки, "РаботаПоЗаявкеЗавершена", ТипКнопкиКоманднойПанели.Действие, "Работа по заявке завершена", ДополнительныеДействия);
			//РаботаПоЗаявкеЗавершена.Подсказка = "Работа по заявке завершена";
			//РаботаПоЗаявкеЗавершена.Пояснение = "Работа по заявке завершена";
			//Кнопки.Вставить(МестоВставки, "РазделительСоздатьСотрудникаПоЗаявке", ТипКнопкиКоманднойПанели.Разделитель);
			//СоздатьСотрудникаПоЗаявке = Кнопки.Вставить(МестоВставки, "СоздатьСотрудникаПоЗаявке", ТипКнопкиКоманднойПанели.Действие, "Создать сотрудника по кандидату...", ДополнительныеДействия);
			//СоздатьСотрудникаПоЗаявке.Подсказка = "Создать сотрудника по кандидату...";
			//СоздатьСотрудникаПоЗаявке.Пояснение = "Создать сотрудника по кандидату...";
			//СоздатьСотрудникаПоЗаявке.Картинка	= БиблиотекаКартинок.ПринятьНаРаботу;
			//СоздатьФизлицоПоЗаявке = Кнопки.Вставить(МестоВставки, "СоздатьФизлицоПоЗаявке", ТипКнопкиКоманднойПанели.Действие, "Занести кандидата в список физических лиц...", ДополнительныеДействия);
			//СоздатьФизлицоПоЗаявке.Подсказка = "Занести кандидата в список физических лиц...";
			//СоздатьФизлицоПоЗаявке.Пояснение = "Занести кандидата в список физических лиц...";
			//Кнопки.Вставить(МестоВставки, "РазделительСоздатьФизлицоПоЗаявке", ТипКнопкиКоманднойПанели.Разделитель);
		}
		// ДополнитьКонтекстныеМеню

		public void УстановитьДоступностьДополнительныхКнопок(/*КнопкиПодменю, КомандыЗаявкиДоступны, НеДоступнаГрупповаяОбработка, ДанныеСтроки*/)
		{
			//ДоступностьКоманд = Новый Соответствие;
			//ДоступностьКоманд.Вставить("СоздатьФизлицоПоЗаявке", 	КомандыЗаявкиДоступны И ДанныеСтроки.Ссылка.Физлицо.Пустая() И НеДоступнаГрупповаяОбработка);
			//ДоступностьКоманд.Вставить("СоздатьСотрудникаПоЗаявке", КомандыЗаявкиДоступны И НеДоступнаГрупповаяОбработка);
			//ДоступностьКоманд.Вставить("РаботаПоЗаявкеЗавершена", 	КомандыЗаявкиДоступны);
		}

		public void ВыполнитьДополнительныеДействия(/*Кнопка, ЭлементыФормы, Форма, ЭтотОбъект, ВыделенныеСтроки*/)
		{
			if(true/*Кнопка.Имя = "РаботаПоЗаявкеЗавершена"*/)
			{
				//РаботаПоЗаявкеЗавершена(Форма, ВыделенныеСтроки);
			}
		}

		public void ФормаПередОткрытиемДополнительно(/*Форма, ДополнительныеДействия = Неопределено*/)
		{
			//Форма.ЭлементыФормы.ПанельДополнительныеСведения.Свертка = РежимСверткиЭлементаУправления.Верх;
			//Форма.ЭлементыФормы.ФИО.Заголовок = "Описание кандидата";
		}
		// ФормаПередОткрытиемДополнительно

		public void ФормаОбработкаОповещенияДополнительно(/*Форма, ИмяСобытия, Параметр, Источник*/)
		{
			/*// В этой конфигурации дополнительных действий не предусмотрено
*/
		}
		// ФормаОбработкаОповещенияДополнительно

		public void СписокКандидатовПриПолученииДанныхДополнительно(/*Форма, Элемент, ОформленияСтрок*/)
		{
			/*// В этой конфигурации дополнительных действий не предусмотрено
*/
		}
		// СписокКандидатовПриПолученииДанныхДополнительно

		public void СписокКандидатовПриАктивизацииСтрокиДополнительно(/*Форма, Элемент*/)
		{
			/*// В этой конфигурации дополнительных действий не предусмотрено
*/
		}
		// СписокКандидатовПриАктивизацииСтрокиДополнительно

		public object ПараметрыЭлементаОписанияКандидата(/*Выборка, ДанныеКандидата*/)
		{
			//ПараметрыОписания = Новый Структура;
			/*// состояние кандидата
*/
			//ПараметрыОписания.Вставить("СостояниеЗаполнено", 	?(ЗначениеЗаполнено(Выборка.Состояние), "inline", "none"));
			//ПараметрыОписания.Вставить("СостояниеНеЗаполнено", 	?(ЗначениеЗаполнено(Выборка.Состояние), "none", "inline"));
			//ПараметрыОписания.Вставить("СостояниеКандидата", 	"<A id=Команда href=""V8:ChangeStatus"" target=""" + Строка(Выборка.Состояние.УникальныйИдентификатор()) + """>" + ?(ЗначениеЗаполнено(Выборка.Состояние), Строка(Выборка.Состояние), "не указано") + "</A>. ");
			/*// вакансия	кандидата
*/
			if(true/*Выборка.ВакансияНеЗаполнена*/)
			{
				if(true/*Выборка.РабочееМестоНеЗаполнено*/)
				{
					//Вакансия	= "Вакансия, на которую рассматривается кандидат, <A id=Команда href=""V8:ChangeVacancy"">не указана</A>";
				}
			}
			//ПараметрыОписания.Вставить("Вакансия",	Вакансия);
			return null;
		}
		// ПараметрыЭлементаОписанияКандидата

		public void ДополнитьМакетОписанияЗаявки(/*Форма, Выборка, ТекстМакетаОписанияЗаявки, КандидатСсылка*/)
		{
			//ДанныеКандидата = Неопределено;
			if(true/*Форма.ДанныеКандидатов <> Неопределено*/)
			{
				//ДанныеКандидата = Форма.ДанныеКандидатов[КандидатСсылка];
			}
			//ПараметрыОписания = ПараметрыЭлементаОписанияКандидата(Выборка, ДанныеКандидата);
			/*ТекстМакетаОписанияЗаявки = ТекстМакетаОписанияЗаявки + "
	|			<P id=СостояниеЗаполнено style=""DISPLAY:" + ПараметрыОписания.СостояниеЗаполнено + """>Текущее состояние: </P>
	|			<P id=СостояниеНеЗаполнено style=""DISPLAY:" + ПараметрыОписания.СостояниеНеЗаполнено + """>Текущее состояние </P>
	|			<P id=СостояниеКандидата style=""DISPLAY:inline"">" + ПараметрыОписания.СостояниеКандидата + " </P>
	|			<P id=Вакансия style=""DISPLAY:inline"">" + ПараметрыОписания.Вакансия + "</P>
	|";*/
		}
		// ДополнитьМакетОписанияЗаявки

		public void ОбновитьМакетОписанияЗаявки(/*ОписаниеКандидата, Выборка, Форма, КандидатСсылка*/)
		{
			//ДанныеКандидата = Неопределено;
			if(true/*Форма.ДанныеКандидатов <> Неопределено*/)
			{
				//ДанныеКандидата = Форма.ДанныеКандидатов[КандидатСсылка];
			}
			//ПараметрыОписания = ПараметрыЭлементаОписанияКандидата(Выборка, ДанныеКандидата);
			//ОписаниеКандидата.getElementById("СостояниеКандидата").innerHTML 	= ПараметрыОписания.СостояниеКандидата;
			//ОписаниеКандидата.getElementById("Вакансия").innerHTML 				= ПараметрыОписания.Вакансия;
		}
		// ОбновитьМакетОписанияЗаявки
	}
}
